package com.example.demomp.config;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * @Author: 张西华
 * @Date: 2023/04/13 10:51
 * @version: v1.0
 * @Description: TODO
 */
@Slf4j
@Component // 一定不要忘记把处理器加到IOC容器中！
public class MyMetaObjectHandler implements MetaObjectHandler {
    // 插入时的填充策略
    @Override
    public void insertFill(MetaObject metaObject) {
        //log.info("start insert fill.....");
        // setFieldValByName(String fieldName, Object fieldVal, MetaObject metaObject
        this.setFieldValByName("createTime",new Date(),metaObject);
        this.setFieldValByName("updateTime",new Date(),metaObject);

        //获取到需要被填充的字段的值
        /*Object fieldValue = getFieldValByName("name", metaObject);
        if(fieldValue == null) {
            //为 null的 时候，才做操作
        }*/
    }

    // 更新时的填充策略
    @Override
    public void updateFill(MetaObject metaObject) {
        //log.info("start update fill.....");
        this.setFieldValByName("updateTime",new Date(),metaObject);
    }
}

